--
-- Juniper Enterprise Specific MIB:LDP MIB Extension
-- 
-- Copyright (c) 2002-2004, 2006, 2008, Juniper Networks, Inc.
-- All rights reserved.
--
-- The contents of this document are subject to change without notice.
--

JUNIPER-LDP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, 
    IpAddress, Counter64, Unsigned32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    InterfaceIndex, InterfaceIndexOrZero
        FROM IF-MIB
    jnxMibs, jnxLdpTraps
        FROM JUNIPER-SMI
    jnxMplsLdpSesState
        FROM JUNIPER-MPLS-LDP-MIB
    MplsVpnName
        FROM MPLS-VPN-MIB
    InetAddressType, InetAddress, InetAddressPrefixLength
        FROM INET-ADDRESS-MIB;

jnxLdp MODULE-IDENTITY
    LAST-UPDATED "200307182153Z" -- Fri Jul 18 21:53:54 2003 UTC
    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
            "        Juniper Technical Assistance Center
                     Juniper Networks, Inc.
                     1194 N. Mathilda Avenue
                     Sunnyvale, CA 94089
                     E-mail: support@juniper.net"

    DESCRIPTION
            "The MIB modules extends the LDP mib draft."

    REVISION     "200408100000Z"    -- Aug 10, 2004
    DESCRIPTION  "Added 'jnxLdpInstanceName' to the jnxLdpLspUp and 
                  jnxLdpLspDown trap."

    REVISION     "200406230000Z"    -- Jun 23, 2004
    DESCRIPTION  "Modified description of jnxLdpSesDownIf and jnxLdpSesDown."

    REVISION     "200406220000Z"    -- Jun 22, 2004
    DESCRIPTION  "Added 'jnxLdpSesUpIf' to the jnxLdpSesUp trap."

    REVISION      "200201100000Z" 
    DESCRIPTION
               "Initial revision."
    ::= { jnxMibs 14 }



    jnxLdpTrapVars      OBJECT IDENTIFIER ::= { jnxLdp 1 }

--
-- define branches for jnx ldp traps
--
-- Note that we need jnxLdpTrapPrefix with the 0
-- sub-identifier to make this MIB translate to
-- an SNMPv1 format in a reversible way. For example
-- it is needed for proxies that convert SNMPv1 traps
-- to SNMPv2 notifications without MIB knowledge.
--   

    jnxLdpTrapPrefix    OBJECT IDENTIFIER ::= { jnxLdpTraps 0 }

jnxLdpLspFec OBJECT-TYPE
    SYNTAX        IpAddress
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The LSP FEC in IP address format."
    ::= { jnxLdpTrapVars 1 }

jnxLdpRtrid OBJECT-TYPE
    SYNTAX        IpAddress
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The router id of the sending router."
    ::= { jnxLdpTrapVars 2 }

jnxLdpLspDownReason OBJECT-TYPE
    SYNTAX        INTEGER { 
                    topologyChanged (1), 
                    receivedWithdrawl (2),
                    neighborDown (3),
                    filterChanged (4),
                    bfdSessionDown (5),
                    unknown (6) }
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The reason why the LSP went down. Can be one of the following:
        the topology changed, the neighbor withdrew the label, 
        the neighbor went down, the filter changed, the BFD session
        went down or the reason is unknown."
    ::= { jnxLdpTrapVars 3 }

jnxLdpSesDownReason OBJECT-TYPE
    SYNTAX        INTEGER { 
                    unknown (0),
                    holdExpired (1), 
                    connectionExpired (2),
                    allAdjacenciesDown (3),
                    badTLV (4),
                    badPDU (5),
                    connectionError (6),
                    connectionReset (7),
                    peerSentNotification (8),
                    unexpectedEOF (9),
                    authenticationChanged (10),
                    initError (11),
                    gracefulRestartAbort (12),
                    cliCommand (13) }
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The reason why the session transitioned to nonexistent state. 
        Can be one of the following:
        unknown reason, hold time expired, connection time expired, 
        all adjacencies down,  received bad tlv, received bad pdu, 
        connectionn error, connection reset, received notification from peer, 
        received unexpected end-of-file, authentication key was changed, 
        error during initialization, graceful restart was aborted or cli
        command."
    ::= { jnxLdpTrapVars 4 }

jnxLdpSesDownIf OBJECT-TYPE
    SYNTAX        InterfaceIndexOrZero
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "This variable is the snmp index of the interface relevant to the 
        session-down  event. If no interface can be correlated to the 
        session-down, then it is the interface associated with one of 
        the neighbors."
    ::= { jnxLdpTrapVars 5 }

jnxLdpLspFecLen OBJECT-TYPE
    SYNTAX        INTEGER (0..32)
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The length in bits of the LSP FEC prefix."
    ::= { jnxLdpTrapVars 6 }

jnxLdpSesUpIf OBJECT-TYPE
    SYNTAX        InterfaceIndexOrZero
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "This variable is the interface index of one of the neighbors
        associated with this session."
    ::= { jnxLdpTrapVars 7 }

jnxLdpInstanceName OBJECT-TYPE
    SYNTAX        MplsVpnName
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION   "Name of the VPN instance."
    ::= { jnxLdpTrapVars 8 }


jnxLdpLspUp NOTIFICATION-TYPE
    OBJECTS  { jnxLdpLspFec, jnxLdpRtrid, jnxLdpLspFecLen, jnxLdpInstanceName}
    STATUS   current
    DESCRIPTION
        "The SNMP trap that is generated when an LSP comes up."
    ::= { jnxLdpTrapPrefix 1 }

jnxLdpLspDown NOTIFICATION-TYPE
    OBJECTS  { jnxLdpLspFec, jnxLdpRtrid, jnxLdpLspDownReason, jnxLdpLspFecLen,
               jnxLdpInstanceName }
    STATUS   current
    DESCRIPTION
        "The SNMP trap that is generated when the LSP goes down."
    ::= { jnxLdpTrapPrefix 2 }

jnxLdpSesUp NOTIFICATION-TYPE
    OBJECTS  { jnxMplsLdpSesState,
               jnxLdpSesUpIf}
    STATUS   current
    DESCRIPTION
        "The SNMP trap that is generated when the value of 'jnxMplsLdpSesState'
         enters the 'operational(5) state."
    ::= { jnxLdpTrapPrefix 3 }

jnxLdpSesDown NOTIFICATION-TYPE
    OBJECTS  { jnxMplsLdpSesState, 
               jnxLdpSesDownReason,
               jnxLdpSesDownIf}
    STATUS   current
    DESCRIPTION
        "The SNMP trap that is generated when the value of 'jnxMplsLdpSesState'
        leaves the 'operational(5) state. The value of jnxLdpSesDownIf is 
        one of the neighbor's interface. It is the interface associated with
        the last neighbor when jnxLdpSesDownReason is allAdjacenciesDown (3)."
    ::= { jnxLdpTrapPrefix 4 }



jnxLdpStatsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF JnxLdpStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION "Table of statistics of Ldp FECs."

    ::= { jnxLdp 2 }

jnxLdpStatsEntry OBJECT-TYPE
    SYNTAX     JnxLdpStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Entry containing statistics information about a particular
         LDP FEC."
    INDEX { jnxLdpInstanceId,
            jnxLdpFecType,
            jnxLdpFec,
            jnxLdpFecLength }
    ::= { jnxLdpStatsTable 1 }

JnxLdpStatsEntry ::=
    SEQUENCE {
        jnxLdpInstanceId        Unsigned32,
        jnxLdpFecType           InetAddressType,
        jnxLdpFec               InetAddress,
        jnxLdpFecLength         InetAddressPrefixLength,
        jnxLdpFecStatisticsStatus INTEGER,
        jnxLdpIngressOctets     Counter64,
        jnxLdpIngressPackets    Counter64,
        jnxLdpTransitOctets     Counter64,
        jnxLdpTransitPackets    Counter64
    }

jnxLdpInstanceId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "LDP instance."
    ::= { jnxLdpStatsEntry 1 }

jnxLdpFecType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "Type of this LDP FEC."
    ::= { jnxLdpStatsEntry 2 }

jnxLdpFec OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (4|16))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "LDP FEC."
    ::= { jnxLdpStatsEntry 3 }

jnxLdpFecLength OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength (0..32)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "LDP FEC length (in bits)."
    ::= { jnxLdpStatsEntry 4 }

jnxLdpFecStatisticsStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                        ok(1),
                        disabled(2),
                        unavailable(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the status of traffic statistics for this FEC.
         For penultimate hop FECs traffic statistics can be disabled.
         For such FECs, the following objects will have the value '0'."
      ::= { jnxLdpStatsEntry 5 }

jnxLdpIngressOctets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of octets of traffic originated on 
         this box, forwarded over the current LDP FEC. The
         number reported is not realtime and may be subject 
         to several minutes delay. The delay is controllable
         by ldp statistics gathering interval, which by
         default is 5 minutes."
    ::= { jnxLdpStatsEntry 6 }

jnxLdpIngressPackets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of packets of traffic originated on
         this box, forwarded over the current LDP FEC. The
         number reported is not realtime and may be subject 
         to several minutes delay. The delay is controllable
         by ldp statistics gathering interval, which by
         default is 5 minutes."
    ::= { jnxLdpStatsEntry 7 }

jnxLdpTransitOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of octets of traffic destined to this FEC,
         originated on a different box, forwarded over the 
         current LDP FEC. The number reported is not realtime 
         and may be subject to several minutes delay. The delay 
         is controllable by ldp statistics gathering interval, 
         which by default is 5 minutes."
    ::= { jnxLdpStatsEntry 8 }

jnxLdpTransitPackets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of packets of traffic destined to this FEC,
         originated on a different box, forwarded over the 
         current LDP FEC. The number reported is not realtime 
         and may be subject to several minutes delay. The delay 
         is controllable by ldp statistics gathering interval, 
         which by default is 5 minutes."
      ::= { jnxLdpStatsEntry 9 }

END